package com.winning.pmph.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import javax.persistence.Table;
import java.util.List;

/**
 * 术语图书元数据表
 *
 * @author 刘亚飞
 * @date 2021-03-30
 */
@Data
@Table(name = "term_book_metadata")
public class TermBookMetadata extends BaseEntity {

    private static final long serialVersionUID = -7981074784133697826L;

    /**
     * 图书导入失败
     */
    public static final Integer STATUS_IMPORT_FAILURE = 0;
    /**
     * 导入成功(未自检)
     */
    public static final Integer STATUS_NO_SELFCHECKING = 1;

    /**
     * 自检有冲突
     */
    public static final Integer STATUS_CONFLICT = 2;
    /**
     * 已入中间术语库
     */
    public static final Integer STATUS_ENTER_BETWEEN = 3;
    /**
     * 图书导入中
     */
    public static final Integer STATUS_IMPORTING = 4;
    /**
     * 自检中
     */
    public static final Integer STATUS_COMPARING = 5;
    /**
     * 自检失败
     */
    public static final Integer STATUS_COMPARE_ERROR = 6;
    /**
     * 与标准术语对比中
     */
    public static final Integer STATUS_COMPARING_STANDARD = 7;
    /**
     * 与标准术语对比失败
     */
    public static final Integer STATUS_ERROR_STANDARD = 8;
    /**
     * 与标准术语有冲突
     */
    public static final Integer STATUS_CONFLICT_STANDARD = 9;
    /**
     * 已入标准术语
     */
    public static final Integer STATUS_STANDARD = 10;

    /**
     * 逻辑删除  未删除
     */
    public static final Integer DELETED_NO = 0;
    /**
     * 逻辑删除  已删除
     */
    public static final Integer DELETED_YES = 1;

    /**
     * ID
     */
    @TableId
    private String id;

    /**
     * 书本名称
     */
    
    private String name;

    /**
     * 书的版本
     */
    
    private String version;

    /**
     * ISBN号
     */
    private String isbn;

    /**
     * 状态 0 图书导入失败 1 导入成功(未自检)  2 自检有冲突 3 已入中间术语库 4 图书导入中  5 自检中  6  自检失败
     */
    private Integer status;

    /**
     * 0 未删除  1 逻辑删除
     */
    private Integer deleted;

    /**
     * 书本元数据
     */
    private String metadata;

    /**
     * 书的文前
     */
    private String front;

    /**
     * 图书导入失败原因
     */
    private String failureReason;

    /**
     * 0 该图书未同步  1该图书已同步 目的,为防止重复推送图书元数据 默认0
     */
    private Integer syncStatus;

    /**
     * 图书所属分类
     */
    private Integer category;

    @TableField(exist = false)
    private String filePath;

    @TableField(exist = false)
    private String imgPath;

    /**
     * 原始术语列表
     */
    @TableField(exist = false)
    private List<Term> termList;

    /**
     * 中间术语列表
     */
    @TableField(exist = false)
    private List<TermBetween> termBetweenList;

    @TableField(exist = false)
    private String unZipPath;

    @TableField(exist = false)
    private String type;

    /**
     * 导入时间
     */
    @TableField(exist = false)
    private String importDate;

    /**
     * 自检人
     */
    private String selfCheckBy;

    /**
     * 自检时间
     */
    private String selfCheckTime;

    /**
     * 与标准术语库对比人
     */
    private String standardCheckBy;

    /**
     * 与标准术语库对比时间
     */
    private String standardCheckTime;

    /**
     * 入标准术语库人
     */
    private String enterStandardBy;

    /**
     * 入标准术语库时间
     */
    private String enterStandardTime;

    @TableField(exist = false)
    private List<Term> conflictList;

    /**
     * 是否存在同组冲突的术语
     */
    @TableField(exist = false)
    private String groupConflict;
    @TableField(exist = false)
    private int totalNum = 0;
    @TableField(exist = false)
    private JSONObject source;
    @TableField(exist = false)
    private String selectedPlatform;
    @TableField(exist = false)
    private String syncIds;
}